home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / acpi / powerbtn.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2008-09-25  |  1KB  |  34 lines

  1. #!/bin/sh
  2. # /etc/acpi/powerbtn.sh
  3. # Initiates a shutdown when the power putton has been
  4. # pressed.
  5.  
  6. # Skip if we just in the middle of resuming.
  7. test -f /var/lock/acpisleep && exit 0
  8.  
  9. # If gnome-power-manager, kpowersave or klaptopdaemon are running, let
  10. # them handle policy This is effectively the same as 'acpi-support's
  11. # '/usr/share/acpi-support/policy-funcs' file.
  12.  
  13. if pidof gnome-power-manager kpowersave > /dev/null ||
  14.   (pidof dcopserver > /dev/null && test -x /usr/bin/dcop && /usr/bin/dcop kded kded loadedModules | grep -q klaptopdaemon) ; then
  15.     exit
  16. fi
  17.  
  18. # Otherwise, if KDE is found, try to ask it to logout.
  19. # If KDE is not found, just shutdown now.
  20. if ps -Af | grep -q '[k]desktop' && pidof dcopserver > /dev/null && test -x /usr/bin/dcop ; then
  21.     KDESES=`pidof dcopserver | wc -w`
  22.     if [ $KDESES -eq 1 ] ; then
  23.         # single KDE session -> ask user
  24.         /usr/bin/dcop --all-sessions --all-users ksmserver ksmserver logout 1 2 0
  25.         exit 0
  26.     else
  27.         # more than one KDE session - just send shutdown signal to all of them
  28.         /usr/bin/dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
  29.     fi
  30. fi
  31.  
  32. # If all else failed, just initiate a plain shutdown.
  33. /sbin/shutdown -h now "Power button pressed"
  34.